#ifndef ITERADORIMP_H
#define ITERADORIMP_H


#include "Iterador.h"
#include "ListaImp.h"
#include "Puntero.h"
template <class T> class ListaImp;

template <class T>
struct nodoListaImp;
template <class T>
class IteradorImp  : public Iterador<T>
{
public:
	
	IteradorImp();
	IteradorImp(const ListaImp<T> &l);
	 ~IteradorImp(){};

	void Reiniciar() ;
	bool HayElemento() const ;
	T& ElementoActual() const;
	void Avanzar() ;

protected:
	Puntero<nodoListaImp<T> > principio;
	Puntero<nodoListaImp<T> > actual;
};

#include "IteradorImp.cpp"

#endif